const Generator = require('yeoman-generator')

module.exports = class extends Generator {
    prompting() {
            // Yeoman 在询问用户环节会自动调用此方法
            // 在此方法中可以调用父类的 prompt() 方法发出对用户的命令行询问

            return this.prompt([{
                type: 'input',
                name: 'name',
                message: 'Your project name?',
                default: this.appname // appname 为项目生成名称
            }]).then(answers => {
                // answers => { name: 'user input value' }
                this.answers = answers
            })


        }
        // Yeoman 自动在生成文件阶段调用此方法
        // 我们这里尝试往项目目录中写入文件
    writing() {
        //     this.fs.write(this.destinationPath('temp.txt'), Math.random().toString())

        // 通过模板方式写入文件到目标目录
        // const tmpl = this.templatePath('foo.txt')

        // 模板文件路径
        // const output = this.destinationPath('Foo.txt')

        // 输出目标路径
        // const context = {
        //     title: 'Hello zce~',
        //     success: false
        // }

        // 模板数据上下文
        // this.fs.copyTpl(tmpl, output, context)



        // 模板文件路径
        const tmpl = this.templatePath('bar.html')
            // 输出目录路径
        const output = this.destinationPath('bar.html')
            // 模板数据上下文
        const context = this.answers
        this.fs.copyTpl(tmpl, output, context)
    }
}